package mybox.junit;

import java.io.IOException;

import mybox.engine.File4Qcad;
import mybox.engine.Platte;
import mybox.engine.QVector;
import mybox.engine.ReferenceIOutput;
import mybox.engine.SchachtelExt;
import mybox.engine.Schachtel;
import mybox.engine.SchachtelMitBoden;
import mybox.engine.SchachtelOO;


//import qcad.RandLinieOO;
import junit.framework.TestCase;

public class SchachtelTC extends TestCase {
	
	public void test_Schachtel() throws SecurityException, IOException {
		
		File4Qcad file4qcad = new File4Qcad(ReferenceIOutput.testoutputFile());		
		
		
		double materialDicke=4;
        double zinkungsFaktor=1;
		double laserBreite=0.09;
		double laenge=50;
		double breite=55;
		double hoehe=55;
		
		
		Schachtel schachtel = new Schachtel(file4qcad, new QVector(0,0), laenge,breite,hoehe,materialDicke,zinkungsFaktor,laserBreite);
		schachtel.draw();
		file4qcad.close();
		
	}
	
	
	
	public void test_schachtelExtensionFFX() 
	throws SecurityException, IOException {
		
		File4Qcad file4qcad = new File4Qcad(ReferenceIOutput.testoutputFile());		
		QVector aktPos = new QVector(0,0);
		
		double laenge=35;
		double breite=35;	
		double hoehe=35;
		double materialDicke=3.0;
		double xLaenge=20;
		double laserBreite=0.037;		
		
		Schachtel schachtel =new Schachtel(
				file4qcad, aktPos, 
				laenge,breite,hoehe, 
				xLaenge, 
				materialDicke,laserBreite,null,Platte.FFX);
		
		schachtel.draw();		
		
		
		file4qcad.close();
		
	}
	
	public void test_schachtelExtensionMXMX() 
	throws SecurityException, IOException {
		
		File4Qcad file4qcad = new File4Qcad(ReferenceIOutput.testoutputFile());		
		QVector aktPos = new QVector(0,0);
		
		double laenge=35;
		double breite=35;	
		double hoehe=35;
		double materialDicke=3.0;
		double xLaenge=20;
		double laserBreite=0.04;
		
		Schachtel schachtel =new Schachtel(
				file4qcad, aktPos, 
				laenge,breite,hoehe, 
				xLaenge, 
				materialDicke,laserBreite,
				null, Schachtel.MXMX);
		schachtel.draw();		
		
		file4qcad.close();
		
	}
	
	public void test_schachtelOOStandard() 
	throws SecurityException, IOException {
		
		File4Qcad file4qcad = new File4Qcad(ReferenceIOutput.testoutputFile());		
		QVector aktPos = new QVector(0,0);
		
		double laenge=50;	
		double breite=50;
		double hoehe=50;		
		double materialDicke=4;	
		double zinkungsFaktor=1;
		double laserBreite=0.04;
		
		
		SchachtelOO schachtelOO = 
			    new SchachtelOO(
			    		file4qcad, aktPos,
				        laenge, breite, hoehe, 
				        materialDicke,
				        zinkungsFaktor,
				        laserBreite);
		schachtelOO.draw();
		
		file4qcad.close();
		
	}
	
	
	
	public void test_schachtelOOMitBoden() 
	throws SecurityException, IOException {
		
		File4Qcad file4qcad = new File4Qcad(ReferenceIOutput.testoutputFile());		
		QVector aktPos = new QVector(0,0);
		
		
		double bodenHoehe=10;
		double materialDicke=4;			
		double zinkungsFaktor=1;
		double laserBreite=0.09;
		double laenge=35;
		double breite=30;
		double hoehe=40;
		
		
		SchachtelMitBoden schachtelMitBoden = 
			    new SchachtelMitBoden(
			    		file4qcad, aktPos,
				laenge, breite, hoehe, bodenHoehe, materialDicke,zinkungsFaktor,
				laserBreite);
		schachtelMitBoden.draw();
		
		file4qcad.close();
		
	}
	
	public void test_schachtelOOMitBoden4Arduino() 
			throws SecurityException, IOException {
				
				File4Qcad file4qcad = new File4Qcad(ReferenceIOutput.testoutputFile());		
				QVector aktPos = new QVector(0,0);
				
				
				double bodenHoehe=10;
				double materialDicke=4;			
				double zinkungsFaktor=1;
				double laserBreite=0.09;
				double laenge=85;
				double breite=78;
				double hoehe=50;
				
				
				SchachtelMitBoden schachtelMitBoden = 
					    new SchachtelMitBoden(
					    		file4qcad, aktPos,
						laenge, breite, hoehe, bodenHoehe, materialDicke,zinkungsFaktor,
						laserBreite);
				schachtelMitBoden.draw();
				
				file4qcad.close();
				
			}
	
	public void test_schachtelOOOnLinux() 
	throws SecurityException, IOException {
		
		File4Qcad file4qcad = new File4Qcad(ReferenceIOutput.testoutputFile());		
		QVector aktPos = new QVector(0,0);
		
		double laenge=70;	
		double breite=50;
		double hoehe=40;
		double bodenHoehe=20;
		double materialDicke=3.4;	
		double zinkungsFaktor=1;
		double laserBreite=0.04;
		
		
		SchachtelMitBoden schachtelMitBoden = 
			    new SchachtelMitBoden(
			    		file4qcad, aktPos,
				laenge, breite, hoehe, bodenHoehe, materialDicke,zinkungsFaktor,
				laserBreite);
		schachtelMitBoden.draw();
		
		file4qcad.close();
		
	}
	
	
	public void test_schachtelGeradeRichter() 
			throws SecurityException, IOException {
				
				File4Qcad file4qcad = new File4Qcad(ReferenceIOutput.testoutputFile());		
				QVector aktPos = new QVector(0,0);
				
				double materialDicke=3.85;	
				double laenge=421+2*materialDicke;	
				double breite=298+2*materialDicke;
				double hoehe=30;
				double bodenHoehe=hoehe-2*materialDicke-4;
				
				double zinkungsFaktor=1;
				double laserBreite=0.09;
				
				
				SchachtelMitBoden schachtelMitBoden = 
					    new SchachtelMitBoden(
					    		file4qcad, aktPos,
						laenge, breite, hoehe, bodenHoehe, materialDicke,zinkungsFaktor,
						laserBreite);
				schachtelMitBoden.draw();
				
				file4qcad.close();
				
			}
	
	public void test_schachtelOOExt() 
	throws SecurityException, IOException {
		
		File4Qcad file4qcad = new File4Qcad(ReferenceIOutput.testoutputFile());		
		QVector aktPos = new QVector(0,0);
		
		double laenge=100;	
		double breite=50;
		double hoehe=60;
		double extension=20;
		double materialDicke=4;	
		double zinkungsFaktor=1;
		double laserBreite=0.04;
						
		SchachtelExt schachtelExt = 
			    new SchachtelExt(
			    		file4qcad, aktPos,
				laenge, breite, hoehe, extension, materialDicke,zinkungsFaktor,
				laserBreite);
		schachtelExt.draw();
		
		file4qcad.close();
		
	}
	
	

}
